// Package closure: 闭包.
// @author: zhenxinma.
// @create: 2021-09-15 09:55:31
package main

import "fmt"

func add() func(int) int {
	// 这个sum对所有的return的闭包的有同等效果.
	sum := 0
	return func(i int) int {
		sum += i
		return sum
	}
}

func main() {
	pos := add()
	//neg := add()
	for i := 0; i < 10; i++ {
		fmt.Println(
			pos(i),
			//neg(-2*i),
		)
	}
}
